package cn.tedu.collection;

import javax.lang.model.element.NestingKind;
import java.util.Arrays;
import java.util.LinkedList;

/**本类用于LinkedList的相关测试*/
public class TestLinkedList {
    public static void main(String[] args) {
        //1.创建集合对象
        LinkedList<String> list = new LinkedList<>();
        //2.添加数据
        list.add("孙悟空");
        list.add("猪八戒");
        list.add("唐三藏");
        list.add("沙师弟");
        list.add("白龙马");
        System.out.println(list);

        //3.请课后自行测试继承自Collection与List的方法

        //4.测试LinkedList的特有方法测试
        list.addFirst("蜘蛛精");//添加首元素
        System.out.println(list);
        list.addLast("玉兔精");//添加尾元素
        System.out.println(list);

        System.out.println(list.getFirst());//获取首元素
        System.out.println(list.getLast());//获取尾元素

        System.out.println(list.removeFirst());//删除首元素
        System.out.println(list);
        list.removeLast();//删除尾元素
        System.out.println(list);

        System.out.println(list.element());//获取首元素，和getFirst()方法一样

        /**别名：查询系列*/
        System.out.println(list.peek());//获取首元素
        System.out.println(list.peekFirst());//获取首元素
        System.out.println(list.peekLast());//获取尾元素

        /**别名：新增系列*/
        System.out.println(list.offer("海绵宝宝"));//添加尾元素
        System.out.println(list.offerFirst("派大星"));//添加首元素
        System.out.println(list.offerLast("蟹老板"));//添加尾元素
        System.out.println(list);

        /**别名：移除系列*/
        System.out.println(list.poll());//删除首元素
        System.out.println(list.pollFirst());//删除首元素
        System.out.println(list.pollLast());//删除尾元素
        System.out.println(list);

        System.out.println(Arrays.toString(list.toArray()));
    }
}
